package com.finna.tenant.service;

import com.finna.tenant.dto.*;
import com.finna.tenant.dto.RoleDTO.RoleCreateRequest;
import com.finna.tenant.dto.RoleDTO.RoleListRequest;
import com.finna.tenant.dto.RoleDTO.RoleResponse;
import com.finna.tenant.dto.RoleDTO.RoleUpdateRequest;

import java.util.List;

/**
 * 角色Service
 */
public interface RoleService {
    
    /**
     * 创建角色
     */
    RoleResponse create(RoleCreateRequest request);
    
    /**
     * 修改角色
     */
    RoleResponse update(Long id, RoleUpdateRequest request);
    
    /**
     * 删除角色
     */
    void delete(Long id);
    
    /**
     * 获取角色详情
     */
    RoleResponse getById(Long id);
    
    /**
     * 获取所有角色（不分页）
     */
    List<RoleResponse> getAll();
    
    /**
     * 获取角色列表（分页）
     */
    PageResponse<RoleResponse> list(RoleListRequest request);
}

